#ifndef COMPLETION_UTILS_H_
#define COMPLETION_UTILS_H_

void add_subsumer(NormalizedAtomicConcept* ac, NormalizedConcept* c);

int is_subsumer_of(NormalizedAtomicConcept* ac, NormalizedConcept* c);

// void push_to_concepts_to_process(NormalizedAtomicConcept* c, NormalizedConcept* d);

// NormalizedConcept* pop_from_concepts_to_process(NormalizedAtomicConcept* c);

void push_to_axioms_to_process(NormalizedAtomicConcept* c, NormalizedConcept* d);

NormalizedAxiom* pop_from_axioms_to_process(NormalizedAtomicConcept* c);

// void push_rhs_to_concepts_to_process(NormalizedAtomicConcept* ac, NormalizedSubClassAxiom* ax);

// int fulfills_premise(NormalizedAtomicConcept* ac, NormalizedConcept* c);
int subsumes(NormalizedAtomicConcept* ac, NormalizedConcept* c);

void add_rhs_to_subsumers(NormalizedAtomicConcept* ac, NormalizedSubClassAxiom* ax);

#endif
